package com.wuye.rcgl.service.impl;

import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wuye.charge.domain.WyTb;
import com.wuye.charge.mapper.WyTbMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wuye.rcgl.mapper.WyJzszMapper;
import com.wuye.rcgl.domain.WyJzsz;
import com.wuye.rcgl.service.IWyJzszService;

/**
 * 记账收支Service业务层处理
 *
 * @author wpc
 * @date 2024-11-23
 */
@Service
public class WyJzszServiceImpl implements IWyJzszService {
    @Autowired
    private WyJzszMapper wyJzszMapper;
    @Autowired
    private WyTbMapper wyTbMapper;

    /**
     * 查询记账收支
     *
     * @param jzszId 记账收支主键
     * @return 记账收支
     */
    @Override
    public WyJzsz selectWyJzszByJzszId(Long jzszId) {
        return wyJzszMapper.selectWyJzszByJzszId(jzszId);
    }

    /**
     * 查询记账收支列表
     *
     * @param wyJzsz 记账收支
     * @return 记账收支
     */
    @Override
    public List<WyJzsz> selectWyJzszList(WyJzsz wyJzsz) {
        return wyJzszMapper.selectWyJzszList(wyJzsz);
    }

    /**
     * 新增记账收支
     *
     * @param wyJzsz 记账收支
     * @return 结果
     */
    @Override
    public int insertWyJzsz(WyJzsz wyJzsz) {
        if (wyJzsz.getJzszType() == 0) {
            BigDecimal money = wyJzsz.getJzszMoney();
            QueryWrapper<WyTb> wrapper = new QueryWrapper<>();
            String jzszName = wyJzsz.getJzszName();
            if (jzszName.contains("物业")) {
                wrapper.like("tb_name", "物业");
            }else if (jzszName.contains("水") || jzszName.contains("电") || jzszName.contains("暖气")){
                wrapper.like("tb_name", "水电");
            }else if(jzszName.contains("车位")){
                wrapper.like("tb_name", "车位");
            }
            WyTb wyTb = wyTbMapper.selectOne(wrapper);
            if (wyTb != null && money != null) {
                wyTb.setTbPayMoney(wyTb.getTbPayMoney().add(money));
                wyTbMapper.updateById(wyTb);
            }
        }
        return wyJzszMapper.insertWyJzsz(wyJzsz);

    }

    /**
     * 修改记账收支
     *
     * @param wyJzsz 记账收支
     * @return 结果
     */
    @Override
    public int updateWyJzsz(WyJzsz wyJzsz) {
        return wyJzszMapper.updateWyJzsz(wyJzsz);
    }

    /**
     * 批量删除记账收支
     *
     * @param jzszIds 需要删除的记账收支主键
     * @return 结果
     */
    @Override
    public int deleteWyJzszByJzszIds(Long[] jzszIds) {
        return wyJzszMapper.deleteWyJzszByJzszIds(jzszIds);
    }

    /**
     * 删除记账收支信息
     *
     * @param jzszId 记账收支主键
     * @return 结果
     */
    @Override
    public int deleteWyJzszByJzszId(Long jzszId) {
        return wyJzszMapper.deleteWyJzszByJzszId(jzszId);
    }

    @Override
    public void manyadd(List<WyJzsz> wyJzszs) {
        for (WyJzsz wyJzsz : wyJzszs) {
            wyJzszMapper.insertWyJzsz(wyJzsz);
        }
    }
}
